﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Autenticacao
{
    public partial class frm_medicamentos : Form
    {
        System.Data.SqlClient.SqlConnection con;
        
        public Medicamento med1;
        private string op2;
        
        public frm_medicamentos(Medicamento med2, string op1)
        {
            this.med1 = med2;
            this.op2 = op1;
            
            InitializeComponent();
            txtm_nome.Text = med1.get_nome().ToString();
            txtm_dosagem.Text = med1.get_dosagem().ToString();
            txtm_tipo.Text = med1.get_tipo().ToString();
        }

        private void cmdm_im_Click(object sender, EventArgs e)
        {
            con = new System.Data.SqlClient.SqlConnection();
            con.ConnectionString = @"Data Source = ANDRÉ-PC\SQLEXPRESS; Initial Catalog = horsepw_bd; Integrated Security = True;";
            con.Open();

            try
            {
                int idm = med1.get_id();
                SqlCommand command1 = con.CreateCommand();
                if (op2 == "novo")
                {
                    if (txtm_nome.Text == "" || txtm_tipo.Text == "" || txtm_dosagem.Text == "")
                        MessageBox.Show("É necessário preencher todos os campos!", "Inserir informação", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    else
                    {
                        command1.CommandText = "SET IDENTITY_INSERT Medicamentos ON Insert into Medicamentos (id_medicamento, nome, dosagem, tipo) Values (" + idm + ", '" + txtm_nome.Text + "', '" + txtm_dosagem.Text + "', '" + txtm_tipo.Text + "') SET IDENTITY_INSERT Medicamentos OFF";
                        command1.CommandType = CommandType.Text;

                        SqlDataReader reader1 = command1.ExecuteReader();

                        MessageBox.Show("Medicamento inserido com sucesso!", "Registo Efetuado", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        this.Close();
                    }
                }
                else
                {
                    MessageBox.Show("Para atualizar carregue no outro botão!", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
            catch (Exception er)
            {
                MessageBox.Show("Dados Inválidos!", "Erro!", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }

            con.Close();
        }

        private void cmdm_am_Click(object sender, EventArgs e)
        {
            con = new System.Data.SqlClient.SqlConnection();
            con.ConnectionString = @"Data Source = ANDRÉ-PC\SQLEXPRESS; Initial Catalog = horsepw_bd; Integrated Security = True;";
            con.Open();

            try
            {
                int idm = med1.get_id();
                SqlCommand command2 = con.CreateCommand();
                if (op2 != "editar")
                {
                    MessageBox.Show("Erro! Escolheu guardar um novo medicamento!", "Atualize no outro botão!", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                else
                {
                    command2.CommandText = "Update Medicamentos SET nome = '" + txtm_nome.Text + "', dosagem = '" + txtm_dosagem.Text + "', tipo = '"+txtm_tipo.Text+"' WHERE id_medicamento = " + idm + "";
                    command2.CommandType = CommandType.Text;

                    SqlDataReader reader1 = command2.ExecuteReader();
                    med1.set_nome(txtm_nome.Text);
                    med1.set_tipo(txtm_tipo.Text);
                    med1.set_dosagem(txtm_dosagem.Text);

                    MessageBox.Show("Medicamento Atualizado com sucesso!", "Atualização Efetuada", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    this.Close();
                }
            }
            catch (Exception er)
            {
                MessageBox.Show("Dados Inválidos!", "Erro!", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            con.Close();
        }

        private void cmdm_fechar_Click(object sender, EventArgs e)
        {
            this.Close();
        }
    }
}
